解构领域驱动设计

您所在的位置:网站首页 解构领域驱动设计 pdf下载 解构领域驱动设计

解构领域驱动设计

2024-07-08 09:38| 来源: 网络整理| 查看: 265

解构领域驱动设计 作者: 张逸 出版社: 人民邮电出版社 出品方: 异步图书 出版年: 2021-8-20 页数: 595 定价: 149.90元 装帧: 平装 ISBN: 9787115566232 内容简介 · · · · · · 本书全面阐释了领域驱动设计(domain-driven design,DDD)的知识体系,内容覆盖领域驱动设计的主要模式与主流方法,并在此基础上提出“领域驱动设计统一过程”(domain-driven design unified process,DDDUP),将整个软件构建过程划分为全局分析、架构映射和领域建模3个阶段。除给出诸多案例来阐释领域驱动设计统一过程中的方法与模式之外,本书还通过一个真实而完整的案例全面展现了如何进行领域驱动设计统一过程的实施和落地。为了更好地运用领域驱动设计统一过程,本书还开创性地引入了业务服务、菱形对称架构、领域驱动架构、服务驱动设计等方法与模式,总结了领域驱动设计能力评估模型与参考过程模型。本书提出的一整套方法体系已在多个项目中推广和落地。 本书适合希望领会软件架构本质、提高软件架构能力的软件架构师,希望提高领域建模能力、打磨软件设计能力的开发人员,希望掌握业务分析与建模方法的业务分析人员,希望学习领域驱动设计并将其运用到项目中的软件行业从业人员阅读参考。 作者简介 · · · · · · 张逸,高质量编码实践者、领域驱动设计布道师、微服务系统架构师、大数据平台架构师、敏捷转型咨询师,曾就职于中兴通讯、惠普、思特沃克(ThoughtWorks)、民航(成都)信息等企业,致力于大型软件企业的分布式架构设计、领域驱动设计、大数据平台架构设计以及垂直领域的企业架构规划与建设,并为国内外多家企业提供技术培训与咨询服务。 目录 · · · · · · 第一篇 开篇 第1章 软件复杂度剖析 2 1.1 什么是复杂系统 2 1.2 理解能力 4 1.2.1 规模 4 1.2.2 结构 6 1.3 预测能力 9 1.3.1 过度设计 9 1.3.2 设计不足 11 第2章 领域驱动设计概览 13 2.1 领域驱动设计的基本概念 14 2.1.1 领域驱动设计元模型 14 2.1.2 问题空间和解空间 16 2.1.3 战略设计和战术设计 17 2.1.4 领域模型驱动设计 18 2.2 领域驱动设计过程 19 2.3 控制软件复杂度 21 2.3.1 控制规模 21 2.3.2 清晰结构 23 2.3.3 响应变化 25 2.4 冷静认识 28 第3章 领域驱动设计统一过程 29 3.1 领域驱动设计现存的不足 30 3.2 领域驱动设计统一过程 31 3.2.1 统一过程的二维模型 31 3.2.2 统一过程的动态结构 33 3.2.3 统一过程的静态结构 36 第二篇 全局分析 第4章 问题空间探索 40 4.1 全局分析的5W模型 40 4.2 高效沟通 42 4.2.1 达成共识 42 4.2.2 统一语言 44 4.3 高效协作 49 4.3.1 商业模式画布 49 4.3.2 业务流程图 51 4.3.3 服务蓝图 52 4.3.4 用例图 54 4.3.5 事件风暴 55 4.3.6 学习循环 56 第5章 价值需求分析 57 5.1 识别利益相关者 57 5.1.1 什么是利益相关者 57 5.1.2 利益相关者的分类 58 5.2 明确系统愿景 61 5.3 确定系统范围 62 5.4 使用商业模式画布 64 第6章 业务需求分析 66 6.1 业务流程 66 6.1.1 业务流程的关键点 67 6.1.2 业务流程的分类 67 6.1.3 业务流程的呈现 67 6.2 业务场景 71 6.2.1 业务场景的5W模型 71 6.2.2 业务服务 72 6.2.3 业务服务的识别 75 6.2.4 业务服务的呈现 76 6.3 子领域 77 6.3.1 子领域元模型 78 6.3.2 子领域的划分 79 6.3.3 子领域映射图 80 第三篇 架构映射 第7章 同构系统 82 7.1 概念层次的同构系统 83 7.1.1 架构的定义 83 7.1.2 架构方案的推演 84 7.1.3 领域驱动架构风格 86 7.2 设计层次的同构系统 87 7.3 管理层次的同构系统 89 7.3.1 组建团队的原则 89 7.3.2 康威定律的运用 91 第8章 系统上下文 93 8.1 “系统内”和“系统外” 93 8.2 系统上下文 94 8.2.1 伴生系统 94 8.2.2 系统上下文图 95 8.3 系统上下文的确定 95 8.3.1 参考价值需求 95 8.3.2 业务序列图 96 第9章 限界上下文 98 9.1 限界上下文的定义 98 9.2 限界上下文的特征 101 9.2.1 领域模型的知识语境 101 9.2.2 业务能力的纵向切分 103 9.2.3 自治的架构单元 105 9.2.4 案例: 供应链的商品模型 106 9.3 限界上下文的识别 111 9.3.1 业务维度 111 9.3.2 验证原则 115 9.3.3 管理维度 118 9.3.4 技术维度 120 第10章 上下文映射 124 10.1 上下文映射概述 124 10.2 通信集成模式 126 10.2.1 防腐层 126 10.2.2 开放主机服务 128 10.2.3 发布语言 129 10.2.4 共享内核 131 10.3 团队协作模式 132 10.3.1 合作者 133 10.3.2 客户方/供应方 133 10.3.3 发布者/订阅者 135 10.3.4 分离方式 136 10.3.5 遵奉者 137 10.4 上下文映射的设计误区 138 10.4.1 语义关系形成的误区 138 10.4.2 对象模型形成的误区 139 10.5 上下文映射的确定 140 10.5.1 任务分解的影响 140 10.5.2 呈现上下文映射 143 第11章 服务契约设计 145 11.1 消息契约 145 11.1.1 消息契约模型 145 11.1.2 消息契约的转换 147 11.2 服务契约 149 11.2.1 应用服务 150 11.2.2 远程服务 153 11.3 设计服务契约 160 11.3.1 业务服务的细化 160 11.3.2 服务序列图 162 11.3.3 服务契约的表示 163 第12章 领域驱动架构 165 12.1 菱形对称架构 165 12.1.1 六边形架构 165 12.1.2 整洁架构思想 168 12.1.3 分层架构 169 12.1.4 演进为菱形对称架构 173 12.1.5 菱形对称架构的组成 177 12.1.6 引入上下文映射 179 12.1.7 改进的菱形对称架构 180 12.1.8 菱形对称架构的价值 182 12.1.9 菱形对称架构的运用 190 12.2 系统分层架构 197 12.2.1 关注点分离 197 12.2.2 映射子领域 198 12.2.3 边缘层 200 12.3 领域驱动架构风格 202 第四篇 领域建模 第13章 模型驱动设计 206 13.1 软件系统中的模型 206 13.2 模型驱动设计 207 13.3 领域模型驱动设计 210 13.3.1 领域模型 210 13.3.2 共同建模 211 13.3.3 领域模型与统一语言 212 13.3.4 迭代建模 213 第14章 领域分析建模 215 14.1 统一语言与领域分析模型 215 14.2 快速建模法 215 14.2.1 名词建模 217 14.2.2 动词建模 219 14.2.3 归纳抽象 221 14.2.4 确定关系 222 14.3 领域分析模型的精炼 222 14.4 领域分析模型与限界上下文 223 第15章 领域模型设计要素 226 15.1 领域设计模型 226 15.1.1 理想的对象模型 226 15.1.2 战术设计元模型 227 15.1.3 模型元素的哲学依据 228 15.2 实体 229 15.2.1 身份标识 230 15.2.2 属性 234 15.2.3 领域行为 236 15.3 值对象 239 15.3.1 值对象与实体的本质区别 239 15.3.2 不变性 241 15.3.3 领域行为 242 15.3.4 值对象的优势 247 15.4 聚合 247 15.4.1 类的关系 247 15.4.2 模型的设计约束 249 15.4.3 聚合的定义与特征 252 15.4.4 聚合的设计原则 254 15.4.5 聚合的协作 260 15.5 聚合生命周期的管理 265 15.5.1 工厂 266 15.5.2 资源库 274 15.6 领域服务 280 15.6.1 聚合的问题 280 15.6.2 领域服务的特征 281 15.6.3 领域服务的运用场景 282 15.7 领域事件 287 15.7.1 建模思想的转变 287 15.7.2 领域事件的定义 289 15.7.3 对象建模范式的领域事件 290 第16章 领域设计建模 295 16.1 角色构造型 295 16.1.1 角色构造型与领域驱动设计 296 16.1.2 领域驱动设计的角色构造型 297 16.2 设计聚合 301 16.2.1 理顺对象图 302 16.2.2 分解关系薄弱处 303 16.2.3 调整聚合边界 310 16.3 服务驱动设计 312 16.3.1 业务服务 312 16.3.2 业务服务的层次 313 16.3.3 服务驱动设计方法 313 16.3.4 服务驱动设计过程 315 16.3.5 业务服务的关键价值 323 第17章 领域实现建模 324 17.1 稳定的领域模型 324 17.1.1 菱形对称架构与测试金字塔 325 17.1.2 测试形成的精炼文档 326 17.1.3 单元测试 327 17.2 测试优先的领域实现建模 329 17.2.1 测试驱动开发 329 17.2.2 测试驱动开发的节奏 331 17.2.3 简单设计 333 17.3 领域建模过程 334 17.3.1 薪资管理系统的需求说明 336 17.3.2 薪资管理系统的领域分析建模 336 17.3.3 薪资管理系统的领域设计建模 340 17.3.4 薪资管理系统的领域实现建模 351 第五篇 融合 第18章 领域驱动设计的战略考量 362 18.1 限界上下文与微服务 362 18.1.1 进程内的通信边界 362 18.1.2 进程间的通信边界 364 18.1.3 限界上下文与微服务的关系 366 18.2 限界上下文之间的分布式通信 368 18.2.1 分布式通信的设计因素 368 18.2.2 分布式通信机制 369 18.3 命令查询职责的分离 377 18.3.1 CQS模式 377 18.3.2 CQRS模式的架构 378 18.3.3 命令总线的引入 379 18.3.4 事件溯源模式的引入 380 18.3.5 事件总线的引入 381 18.4 事务 383 18.4.1 本地事务 384 18.4.2 分布式事务 386 18.4.3 柔性事务 388 第19章 领域驱动设计的战术考量 396 19.1 设计概念的统一语言 396 19.1.1 设计术语的统一 396 19.1.2 诸多“XO” 399 19.1.3 领域驱动设计的设计统一语言 402 19.2 领域模型的持久化 402 19.2.1 对象关系映射 403 19.2.2 JPA的应对之道 403 19.2.3 瞬态领域模型 413 19.2.4 领域模型与数据模型 415 19.3 资源库的实现 417 19.3.1 通用资源库的实现 417 19.3.2 资源库端口与适配器 419 19.3.3 聚合的领域纯粹性 420 19.3.4 领域服务的协调价值 420 第20章 领域驱动设计体系 423 20.1 领域驱动设计的精髓 423 20.1.1 边界是核心 423 20.1.2 纪律是关键 425 20.2 领域驱动设计能力评估模型 426 20.2.1 敏捷迭代能力 427 20.2.2 需求分析能力 427 20.2.3 领域建模能力 428 20.2.4 架构设计能力 428 20.3 领域驱动设计参考过程模型 429 20.3.1 EAS案例背景 431 20.3.2 EAS的全局分析 431 20.3.3 EAS的架构映射 452 20.3.4 EAS的领域建模 467 20.3.5 EAS的融合设计 485 20.4 总结 495 附录 附录A 领域建模范式 498 A.1 结构建模范式 498 A.1.1 结构化编程的设计原则 498 A.1.2 结构化编程的问题 499 A.1.3 结构建模范式的设计模型 502 A.2 对象建模范式 507 A.2.1 职责 507 A.2.2 抽象 514 A.3 函数建模范式 522 A.3.1 代数数据类型 522 A.3.2 纯函数 525 A.3.3 函数建模范式的演绎法 530 附录B 事件驱动模型 533 B.1 事件风暴 534 B.1.1 理解事件风暴 534 B.1.2 探索业务全景 537 B.1.3 领域分析建模 543 B.1.4 事件风暴与建模范式 547 B.2 事件溯源模式 547 B.2.1 领域事件的定义 548 B.2.2 聚合的创建与更新 548 B.2.3 快照 551 B.2.4 面向聚合的事件溯源 552 B.2.5 聚合查询的改进 553 B.3 事件驱动架构 555 B.3.1 事件驱动架构风格 555 B.3.2 引入事件流 556 附录C 领域驱动设计魔方 561 C.1 发展过程的里程碑 561 C.2 领域驱动设计魔方 562 C.3 全局分析的魔方切面 563 C.3.1 业务角度 563 C.3.2 技术角度 564 C.3.3 管理角度 564 C.4 架构映射的魔方切面 565 C.4.1 业务角度 565 C.4.2 技术角度 566 C.4.3 管理角度 566 C.5 领域建模 566 C.5.1 业务角度 567 C.5.2 技术角度 567 C.5.3 管理角度 568 附录D 领域驱动设计统一过程交付物 569 D.1 价值需求 569 D.1.1 利益相关者 569 D.1.2 系统愿景 569 D.1.3 系统范围 569 D.2 业务需求 569 D.2.1 概述 569 D.2.2 业务流程 570 D.2.3 子领域1…n 570 D.3 系统上下文 571 D.3.1 概述 571 D.3.2 系统协作 571 D.4 业务架构 571 D.4.1 业务组件 571 D.4.2 业务架构视图 571 D.5 应用架构 571 D.5.1 应用组件 571 D.5.2 应用架构视图 572 D.6 子领域架构 572 D.6.1 核心子领域1…n 572 D.6.2 支撑子领域 572 D.6.3 通用子领域 572

下载地址 Download解决验证以访问链接!进行人机身份验证


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3